package com.dao;

import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import com.bean.FaltaBean;

public class FaltaDao {
	
	public static final String TABELA = "falta";
	
	public static final String COLUNA_FAL_UNI_ID = "uni_id";
	public static final String COLUNA_FAL_CON_ID = "con_id";
	public static final String COLUNA_FAL_ALU_ID = "alu_id";
	public static final String COLUNA_FAL_BIM_ID = "bim_id";
	public static final String COLUNA_FAL_ID = "fal_id";
	public static final String COLUNA_FAL_SITUACAO = "fal_situacao";
	
	public long insert(SQLiteDatabase escola, FaltaBean faltaBean){

		ContentValues valores = new ContentValues();
		valores.put(COLUNA_FAL_UNI_ID, faltaBean.getUnidade().getId());
		valores.put(COLUNA_FAL_CON_ID, faltaBean.getConteudo().getId());
		valores.put(COLUNA_FAL_ALU_ID, faltaBean.getAluno().getId());
		valores.put(COLUNA_FAL_BIM_ID, faltaBean.getBimestre().getId());
		valores.put(COLUNA_FAL_ID, faltaBean.getId());
		valores.put(COLUNA_FAL_SITUACAO, faltaBean.getSituacao());

		return escola.insert(TABELA, null, valores);

	}
	
	public long update(SQLiteDatabase escola, FaltaBean faltaBean){

		ContentValues valores = new ContentValues();
		valores.put(COLUNA_FAL_UNI_ID, faltaBean.getUnidade().getId());
		valores.put(COLUNA_FAL_CON_ID, faltaBean.getConteudo().getId());
		valores.put(COLUNA_FAL_ALU_ID, faltaBean.getAluno().getId());
		valores.put(COLUNA_FAL_BIM_ID, faltaBean.getBimestre().getId());
		valores.put(COLUNA_FAL_ID, faltaBean.getId());
		valores.put(COLUNA_FAL_SITUACAO, faltaBean.getSituacao());

		return escola.update(TABELA, valores, COLUNA_FAL_UNI_ID + " = " + faltaBean.getUnidade().getId() + 
				" AND " + COLUNA_FAL_ID + " = " + faltaBean.getId(), null);

	}
	
	public boolean delete(SQLiteDatabase escola, FaltaBean faltaBean){
		return escola.delete(TABELA, COLUNA_FAL_UNI_ID + " = " + faltaBean.getUnidade().getId() + 
				" AND " + COLUNA_FAL_ID + "=" + faltaBean.getId(), null) > 0;
	}
	
	public FaltaBean buscaPorCodigo(SQLiteDatabase escola, long unidade, long rowId) throws ParseException {
		StringBuilder sql = new StringBuilder();
		sql.append(" SELECT * ");
		sql.append("   FROM " + TABELA );
		sql.append("  WHERE "+ COLUNA_FAL_UNI_ID + "=" + unidade );
		sql.append("    AND "+ COLUNA_FAL_ID + "=" + rowId);

		FaltaBean faltaBean = new FaltaBean();

		Cursor cursor = escola.rawQuery(sql.toString(), null);

		if(cursor.getCount() > 0){
			faltaBean.getUnidade().setId(cursor.getInt(cursor.getColumnIndex(COLUNA_FAL_UNI_ID)));
			faltaBean.getConteudo().setId(cursor.getInt(cursor.getColumnIndex(COLUNA_FAL_CON_ID)));
			faltaBean.getAluno().setId(cursor.getInt(cursor.getColumnIndex(COLUNA_FAL_ALU_ID)));
			faltaBean.getBimestre().setId(cursor.getInt(cursor.getColumnIndex(COLUNA_FAL_BIM_ID)));
			faltaBean.setId(cursor.getInt(cursor.getColumnIndex(COLUNA_FAL_ID)));
			faltaBean.setSituacao(cursor.getString(cursor.getColumnIndex(COLUNA_FAL_SITUACAO)));

			cursor.close();
			return faltaBean;

		} else {
			cursor.close();
			return null;
		}
	}
	
	public List<FaltaBean> getAll(SQLiteDatabase escola, long unidadeId) throws ParseException{

		StringBuilder sql = new StringBuilder();
		sql.append(" SELECT * ");
		sql.append("   FROM " + TABELA );
		sql.append("  WHERE "+ COLUNA_FAL_UNI_ID + "=" + unidadeId );

		List<FaltaBean> faltaList = new ArrayList<FaltaBean>();

		Cursor cursor = escola.rawQuery(sql.toString(), null);

		while(cursor.moveToNext()){

			FaltaBean faltaBean = new FaltaBean();

			faltaBean.getUnidade().setId(cursor.getInt(cursor.getColumnIndex(COLUNA_FAL_UNI_ID)));
			faltaBean.getConteudo().setId(cursor.getInt(cursor.getColumnIndex(COLUNA_FAL_CON_ID)));
			faltaBean.getAluno().setId(cursor.getInt(cursor.getColumnIndex(COLUNA_FAL_ALU_ID)));
			faltaBean.getBimestre().setId(cursor.getInt(cursor.getColumnIndex(COLUNA_FAL_BIM_ID)));
			faltaBean.setId(cursor.getInt(cursor.getColumnIndex(COLUNA_FAL_ID)));
			faltaBean.setSituacao(cursor.getString(cursor.getColumnIndex(COLUNA_FAL_SITUACAO)));

			faltaList.add(faltaBean);

		}

		cursor.close();
		return faltaList;

	}

}
